package com.framework.bdf4j.comm.util;

import cn.hutool.core.lang.Validator;
import com.framework.bdf4j.comm.exception.ExcelImportException;
import com.framework.bdf4j.sysadm.entity.SysUser;
import com.ylink.ide.trade.runtime.utils.StringUtil;

import java.util.regex.Pattern;

/**
 * 朱门用来校验用户信息的
 */
public class UserInfoValidator {

    /**
     * 校验用户对象是否符合规范
     * @param sysUser
     * @return
     */
    public static Boolean isLegalUser(SysUser sysUser) {
        if(StringUtils.isEmpty(sysUser.getLoginname()))
            throw new ExcelImportException("校验未通过,请录入登录名");
        
        if(StringUtils.isEmpty(sysUser.getUsername()))
            throw new ExcelImportException("登录名:" + sysUser.getLoginname() + "校验未通过,请录入用户名");
        
        if(StringUtils.isEmpty(sysUser.getPhone()) || !isLegalPhone(sysUser.getPhone()))
            throw new ExcelImportException("登录名:" + sysUser.getLoginname() + "校验未通过,请录入正确的手机号");
        
        if(StringUtils.isEmpty(sysUser.getEmail()) || !isLegalEmail(sysUser.getEmail()))
            throw new ExcelImportException("登录名:" + sysUser.getLoginname() + "校验未通过,请录入正确的邮箱地址");
        
        return Boolean.TRUE;
    }

    /**
     * 校验手机号码是否符合规范
     * @param phone
     * @return
     */
    private static Boolean isLegalPhone(String phone) {
        if(Validator.isMobile(phone)) return Boolean.TRUE;
        return Boolean.FALSE;
    }

    /**
     * 校验邮箱是否符合规范
     * @param email
     * @return
     */
    private static Boolean isLegalEmail(String email) {
        if(Validator.isEmail(email)) return Boolean.TRUE;
        return Boolean.FALSE;
    }
}
